//========================================== //MAX72xx Dot Matrix Display & BME280 Sensor //========================================== #include #include #include #include #include //------------------------------------------------------------ MD_Parola disp = MD_Parola(MD_MAX72XX::FC16_HW, 10, 4); Adafruit_BME280 bme; //------------------------------------------------------------ int temp, hum, pres; String tempString, humString, presString; //================================================================================== void setup() { pinMode(2,INPUT); pinMode(3,INPUT); pinMode(4,INPUT); disp.begin(); bme.begin(0x76, &Wire); disp.displayText("BME280 Sensor", PA_LEFT, 40, 40, PA_SCROLL_LEFT,PA_SCROLL_LEFT); } //================================================================================== void loop() { // while(!disp.displayAnimate()); // disp.displayText("T * H * P", PA_LEFT, 20, 20, PA_SCROLL_LEFT,PA_SCROLL_LEFT); while(!disp.displayAnimate()); if(digitalRead(2) == HIGH) dispTemp(); if(digitalRead(3) == HIGH) dispHum(); if(digitalRead(4) == HIGH) dispPres(); disp.displayClear(); } //================================================================================== void dispTemp() { disp.displayClear(); disp.displayText("Temperature", PA_LEFT, 30, 30, PA_SCROLL_LEFT,PA_SCROLL_LEFT); while(!disp.displayAnimate()); delay(500); for(int i=1; i<=7; i++) { temp = bme.readTemperature(); tempString = " " + String(temp) + " C"; disp.print(tempString); delay(1000); } } //================================================================================== void dispHum() { disp.displayClear(); disp.displayText("Humidity", PA_LEFT, 30, 30, PA_SCROLL_LEFT,PA_SCROLL_LEFT); while(!disp.displayAnimate()); delay(500); for(int i=1; i<=7; i++) { hum = bme.readHumidity(); humString = " " + String(hum) + " %"; disp.print(humString); delay(1000); } } //================================================================================== void dispPres() { disp.displayClear(); disp.displayText("Pressure", PA_LEFT, 30, 30, PA_SCROLL_LEFT,PA_SCROLL_LEFT); while(!disp.displayAnimate()); delay(500); for(int i=1; i<=7; i++) { pres = bme.seaLevelForAltitude(705, bme.readPressure())/100; presString = "" + String(pres) + " H"; disp.print(presString); delay(1000); } }